home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
taropyon
/
he386
/
textbook.doc
< prev
Wrap
Text File
|
1994-11-16
|
9KB
|
254 lines
**************************************************************************
HE386 ver.3.01 テキストブック
**************************************************************************
**************************************************************************
☆ 基礎編
**************************************************************************
■MMLの基礎
●音階の表しかた
┌───┬──────────────────────────────┐
│音階 │ド ド♯ レ レ♯ ミ ファ ファ♯ ソ ソ♯ ラ ラ♯ シ │
│ │ レ♭ ミ♭ ソ♭ ラ♭ シ♭ │
├───┼──────────────────────────────┤
│MML │c c+ d d+ e f f+ g g+ a a+ b │
│ │ d- e- g- a- b- │
└───┴──────────────────────────────┘
オクターブはoコマンドで指定します。
オクターブ4の「ラ」の音は,MML では「o4 a」と表します。
oコマンドは一度指定すれば,次にオクターブが変わるまで使う必要はありませ
ん。
たとえば「ド・レ・ミ・フ・ァ・ソ・ラ・シ・ド」は最後の「ド」の音はオクタ
ーブがひとつ上ですが,これは
o4 c d e f g a b o5 c
と表します。
またオクターブは現在のオクターブよりひとつ上げる,ひとつ下げるといった指
定ができます。「> 」がオクターブをひとつ上げるコマンド,「< 」はオクターブ
をひとつ下げるコマンドになります。これを使うと先程の「ド・レ・ミ・フ・ァ・
ソ・ラ・シ・ド」は,
o4 c d e f g a b > c
と表せます。
●音の長さの表しかた
音の長さは,音符による指定とステップタイムによる指定の2種類の指定方法が
あります。
音符による指定は簡単です。たとえば,4分音符なら「4」,16分音符なら「16」
と指定した数値がそのまま音符になります。全音符は「1」になります。
符点付きの場合は,数字の後ろにピリオド「. 」を置いてください。たとえば,
符点4分音符は「4.」となります。
MML として指定するときは,音階を表す文字(A~G)の後ろに音符を表す数字
を置きます。
a4 …「ラ」4分音符
c+16 …「ド♯」16分音符
f2. …「ファ」符点2分音符
全音符よりも長い音は,タイを使って音符をつなげて表現します。タイはMML で
は「&」となります。
c1& c1& c4 …全音符 + 全音符 + 4分音符
音の長さを毎回するのが面倒なときは省略することができます。音の長さを省略
した場合はl コマンドで指定した長さが指定されたとみなされます。
l8 c d e& e d
●強弱の指定
音の強弱は,v コマンドを使って指定します。
強弱は1~127 の範囲で指定でき,数値が大きいほど大きな音となります。
v コマンドは鍵盤を押す速さを意味するベロシティを指定するもので,発音中の
音量の変化は行えません。v コマンドは発音するときの音の強さを間接的に指定す
るコマンドで,v コマンド単体では音は何も変化しません。v コマンドは次に現れ
る音階a ~g コマンドが使われたときに実際の音の大きさが変化します。
l8 v80 c d e f v110 g
■HE386系MMLの基礎
●数値指定について,
HE386 には,数値の指定に,
・直接指定
・相対指定
・比率指定
・ランダム指定
の4つの方法があり,これらを組み合わせて使うこともできます。
直接指定というのは,普通に数値を指定する方法です。たとえば「v100」という
のがこれにあたります。
相対指定は,「現在の値から10増やす」といった具合に現在の値を中心にして変
化する分量を指定する指定方法です。相対指定はシングルクォート(' )を付けて
指定します。
たとえば,次のようにすると,
v100 c v'10 d v'-50 e
d の音は「100+10」でv110 ,e の音は「110-50 」でv60 が指定されたのと同じ
です。
比率指定は,「現在の値の80%」といった具合に,比率で値を変化させる指定方
法です。比率指定はパーセント記号(%)を数値の最後につけます。
たとえば,次のようにすると,
v50 c v80% d
d の音は「50 × 80÷100」でv40 が指定されたのと同じです。
ランダム指定は,「0から100まで間の乱数」といった具合に,指定範囲中の乱数
となります。ランダム指定は「*<数値1>..<数値2>」 といった具合に指定します。
たとえば,次のようにすると,
v*80..100 c d e
c もd も e も,v コマンドは80~100の間で中が入るかわかりません。
**************************************************************************
☆ 応用編(初級)
**************************************************************************
■「ドレミファソラシド」を鳴らしてみる
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Melody
Melody(1) = l8 v100 o4 c d e f g a b >c
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■ドミソ(Cコード)を鳴らす
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Organ
Organ(1) = o3 v80 g1
Organ(2) = o3 v80 e1
Organ(3) = o3 v80 c1
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■音色をかえる(プログラムチェンジ)(1)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Melody
Melody(1) = @PROG(14) /* プログラムチェンジ14 */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■音色をかえる(プログラムチェンジ)(2)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Melody
Melody(1) = ?(prog:14) /* プログラムチェンジ14 */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■音量をだんだんと小さくする
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Melody
Melody(1) = l8 x127 r1 x120r x110r x100r x90r x80r x70r x60r x50r
Melody(2) = c1& c1
.meas
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
【解説】
エクスプレッション(x コマンド)を使って音量をだんだんと下げています。
**************************************************************************
☆ 応用(中級)
**************************************************************************
■指定トラックのベロシティをランダムに
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Bass
/* -2 ~ +2の間でランダムにベロシティにオフセットを加える
Bass(1) = @FILTER(vel,rnd:-2/2)
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■指定パートのベロシティをランダムに (1)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Bass
/* 98 ~ 102の間でランダムにベロシティ指定する
Bass(1) = v*98..102 /* same "?(vel:*98..102)" */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■指定パートのベロシティをランダムに (2)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:Bass
/* オフセッタで -2 ~ +2 の間でランダムにベロシティにオフセットを加える
Bass(1) = v#*-2..2 /* same "?#(vel:*-2..2)" */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
**************************************************************************
☆ 応用編(GS音源)
**************************************************************************
■GS音源の初期化
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:System
System(1) = $exGs_reset() /* GS reset */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■バンクをともなったプログラムチェンジ (1)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:EPiano
EPiano(1) = @CC(0,8) @PROG(6) /* バンク 8,プログラムナンバ 6 */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■バンクをともなったプログラムチェンジ (2)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define BANK @CC(0,$1) /* バンク切り換え用マクロ定義 */
.track 1 port:A ch:1 macro:EPiano
EPiano(1) = $BANK(8) @PROG(6) /* バンク 8,プログラムナンバ 6 */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
■バンクをともなったプログラムチェンジ (3)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
.track 1 port:A ch:1 macro:EPiano
EPiano(1) = ?(cc:0/8,prog:6) /* バンク 8,プログラムナンバ 6 */
.meas
.end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=